print("It is a lua function test!!!\n")
--[[
    函数定义基本格式
    optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
    function_body
    return result_params_comma_separated
    end

    1.  optional_function_scope 表示函数的作用域，
        因为在lua中function代表一种数据类型因此有全局函数和局部函数之分
    2.  function 定义函数的关键字
    3.  function_name 函数名称
    4.  argumentx 形参
    5.  result_params_comma_separated 返回值
    --]]

print("Normal function test:\n")
function max( num1,num2 )
    if(num1>num2)-- body
    then
        return num1
    else
        return num2
    end
end
print("Compare 12 and 14,the max =",max(12,14))

print("Varible argument function test:\n")

-- {...}是将传入的参数当作一个集合来处理，或者说是一个lua 表
-- #{...}可以获取表的长度
-- slelect("#",...)也可以获取表的长度
-- argi = select(i,...)可以获取第i个传入的参数
function average(...)
    local sum = 0;
    for i,v in pairs({...})
    do
        sum = sum  + v
    end
    local result = sum / #{...}
    return result
end

print("1 2 3 4 5 6 average = ",average(1,2,3,4,5,6))

--[[
    lua的函数定义要注意变量的作用域
    1.  函数的作用域
    2.  支持多个返回值，用“,”号隔开
    3.  支持可变参数
    --]]